<html>
  <head>
    <title>Xpo.UpdateSchema</title>
    <link rel="stylesheet" type="text/css" href="../../styles/presentation.css" />
    <link rel="stylesheet" type="text/css" href="ms-help://Hx/HxRuntime/HxLink.css" />
    <script type="text/javascript" src="../../scripts/EventUtilities.js"></script>
    <script type="text/javascript" src="../../scripts/SplitScreen.js"></script>
    <script type="text/javascript" src="../../scripts/Dropdown.js"></script>
    <script type="text/javascript" src="../../scripts/script_loc.js"></script>
    <script type="text/javascript" src="../../scripts/script_manifold.js"></script>
    <script type="text/javascript" src="../../scripts/script_feedBack.js"></script>
    <script type="text/javascript" src="../../scripts/CheckboxMenu.js"></script>
    <script type="text/javascript" src="../../scripts/CommonUtilities.js"></script>
  </head>
  <body>
    <input type="hidden" id="userDataCache" class="userDataStyle" />
    <input type="hidden" id="hiddenScrollOffset" />
    <img id="collapseImage" style="display:none; height:0; width:0;" src="../../icons/collapse_all.gif" title="Collapse image" />
    <img id="expandImage" style="display:none; height:0; width:0;" src="../../icons/expand_all.gif" title="Expand Image" />
    <img id="collapseAllImage" style="display:none; height:0; width:0;" src="../../icons/collapse_all.gif" />
    <img id="expandAllImage" style="display:none; height:0; width:0;" src="../../icons/expand_all.gif" />
    <img id="dropDownImage" style="display:none; height:0; width:0;" src="../../icon/dropdown.gif" />
    <img id="dropDownHoverImage" style="display:none; height:0; width:0;" src="../../icons/dropdownHover.gif" />
    <img id="copyImage" style="display:none; height:0; width:0;" src="../../icons/copycode.gif" title="Copy image" />
    <img id="copyHoverImage" style="display:none; height:0; width:0;" src="../../icons/copycodeHighlight.gif" title="CopyHover image" />
    <div id="header">
      <table id="topTable" cellspacing="0" cellpadding="0">
        <tr>
          <td>
            <span onclick="ExpandCollapseAll(toggleAllImage)" style="cursor:default;" onkeypress="ExpandCollapseAll_CheckKey(toggleAllImage, event)" tabindex="0">
              <img ID="toggleAllImage" class="toggleAll" src="../../icons/collapse_all.gif" />
              <label id="collapseAllLabel" for="toggleAllImage" style="display: none;">Collapse All</label>
              <label id="expandAllLabel" for="toggleAllImage" style="display: none;">Expand All</label>
            </span>
          </td>
        </tr>
      </table>
      <table id="bottomTable" cellpadding="0" cellspacing="0">
        <tr id="headerTableRow1">
          <td align="left">
            <span id="runningHeaderText">DevExpress Contrib</span>
          </td>
        </tr>
        <tr id="headerTableRow2">
          <td align="left">
            <span id="nsrTitle">
                  Xpo.UpdateSchema
               </span>
          </td>
          <td align="center" style="width: 1px; padding: 0px">
            <img src="../../images/DevExContrib 32.png" alt="DevExpress Contrib" />
          </td>
        </tr>
        <tr id="headerTableRow3">
          <td align="left">
            <span id="headfb" class="feedbackhead" />
          </td>
        </tr>
      </table>
      <table id="gradientTable">
        <tr>
          <td class="nsrBottom" background="../../icons/gradient.gif" />
        </tr>
      </table>
    </div>
    <div id="mainSection">
      <div id="mainBody">
        <div class="Content">
            <p><big>Modify an existing database schema utilizing a database independent approach.</big></p>
            <p>Updating an existing database schema is a feature that has been requested and that 
            Developer Express may eventually implement (see: <a href="http://www.devexpress.com/kb=A581">A581</a>
            and <a href="http://www.devexpress.com/issue=AS4684">AS4684</a>). However, since this is a
            feature that I would like to use now, I decided to implement it here. Xpo.UpdateSchema is written
            using C# in Visual Stuido 2008 and uses version 3.5 of the .NET framework.</p>
            <p>DevExpressContrib.Xpo.UpdateSchema currently modifies three things within an existing XPO
            generated schema.</p>
            <p><strong>Schema Updates:</strong></p>
            <ul>
                <li>Update the size of a string column.</li>
                <li>Delete a column.</li>
                <li>Rename a column.</li>
            </ul>
            <p>It performs these tasks by using attributes and database specific providers (similar to XPO
            functionality). Xpo.UpdateSchema currently has providers for the following databases.</p>
            <p><strong>Providers:</strong></p>
            <ul>
                <li>Microsoft SQL Server (tested using SQL Server 2005 Express Edition)</li>
                <li>Microsoft Access (tested using the default Jet engine under Microsoft Windows XP)</li>
                <li>VistaDB 3</li>
                <li>Sybase SQL Anywhere</li>
            </ul>
            <p>DevExpressContrib.Xpo.UpdateSchema also provides a way to validate and update a schema version
            if desired. Any object which implements an ISchemaVersion interface can be passed to 
            DevExpressContrib.Xpo.UpdateSchema to perform this task.</p>
            <p><strong>Features that still need to be implemented:</strong></p>
            <ul>
                <li>Write more tests. In fact, the tests that are currently supplied for DevExpressContrib.Xpo.UpdateSchema
                are not unit tests - they are integration tests. They directly access the databases. These should be kept
                but actual unit tests should also be included.</li>
                <li>Ensure that heirarchical persistent classes work properly - this has not yet been tested.</li>
            </ul>
            <p><strong>NOTES:</strong></p>
            <ul>
                <li>The bonus providers (currently, ASA and VistaDB3) are commented out for shipping. This is to allow
                people to easily compile DevExpress Contrib. To use one of these bonus providers, uncomment the provider
                and recompile.</li>
            </ul>
            <p>&nbsp;</p>
            <p>Additional providers will be added as time permits (and if I have access to the database engines).
            If you would like to contribute a provider please contact me.</p>
        </div>
      </div>
      <div id="footer">
        <div class="footerLine">
          <img width="100%" height="3px" src="../../icons/footer.gif" title="Footer image" />
        </div>
        <p />
        <div id="DevLynxVersion">
           <p><small>v2009.0.3332.39062 (2009-02-14  21:42:04)</small></p>
        </div>
        <div id="DevLynxCopyright">
           <p>Copyright &copy; 2008-2009, DevLynx</p>
        </div>
      </div>
    </div>
  </body>
</html>
<!-- @SortOrder 1 -->
